package com.bbva.kyfb.kyfbdaohost.sistemasHost;

import com.bbva.jee.arq.spring.core.gce.ExcepcionEjecucionAplicacion;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ApoderadoEmpresasFirmInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConfirmacionProcesoOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultaAptitudMifidInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultaAptitudMifidOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultaDatosClienteInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultaSituacionFicherosInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultaSituacionFicherosOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultarFirmatesFicheroInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultarFirmatesFicheroOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultarNifAutorizadosFirmaInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.ConsultarNifAutorizadosFirmaOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.DatosClienteDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.DetalleFicheroInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.DetalleFicheroOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.EliminarFicheroPendienteInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.EmpresasFirOutNifDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.EmpresasFirOutRefDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.EmpresasFirmInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FicheroPendienteFirmaInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FicherosPendienteEmpresaInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FicherosPendientePorEmpresaNifInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FicherosPendientePorEmpresaONifInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FicherosPendientesEmpresaONifOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FicherosPendientesEmpresaOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FirmaFicheroInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FirmarFicheroPendienteInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.FirmarFicheroPendienteOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.OrdenPendienteFirmaInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.OrdenPendienteFirmaRefNifInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.OrdenPendienteFirmaRefNifOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.OrdenPendienteFirmaReferenciaExternaInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.OrdenPendienteFirmaReferenciaExternaOutDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.RegistrarOrdenPendienteFirmaInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.UsuariosFirmantesOrdenInDto;
import com.bbva.kyfb.kyfbdto.firmas.sistemasHost.UsuariosFirmantesOrdenOutDto;


/**
 * The Interface AccesoSistemasHost.
 */
public interface AccesoSistemasHost {

	/**
	 * Consultar empresas por referencia.
	 *
	 * @param empresasFirmInDto the empresas firm in dto
	 * @return the empresas fir out ref dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	EmpresasFirOutRefDto consultarEmpresasPorReferencia(
			EmpresasFirmInDto empresasFirmInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Consultar empresas por nif.
	 *
	 * @param apoderadoEmpresasFirmInDto the apoderado empresas firm in dto
	 * @return the empresas fir out nif dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	EmpresasFirOutNifDto consultarEmpresasPorNif(
			ApoderadoEmpresasFirmInDto apoderadoEmpresasFirmInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Consultar ficheros pendientes por empresa.
	 *
	 * @param ficherosPendienteEmpresaInDto the ficheros pendiente empresa in dto
	 * @return the ficheros pendientes empresa out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	FicherosPendientesEmpresaOutDto consultarFicherosPendientesPorEmpresa(
			FicherosPendienteEmpresaInDto ficherosPendienteEmpresaInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Consultar ficheros pendientes por empresa nif.
	 *
	 * @param ficherosPendientePorEmpresaNifInDto the ficheros pendiente por empresa nif in dto
	 * @return the ficheros pendientes empresa out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	FicherosPendientesEmpresaOutDto consultarFicherosPendientesPorEmpresaNif(
			FicherosPendientePorEmpresaNifInDto ficherosPendientePorEmpresaNifInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Eliminar fichero pendiente firma.
	 *
	 * @param eliminarFicheroPendienteInDto the eliminar fichero pendiente in dto
	 * @return the firmar fichero pendiente out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	FirmarFicheroPendienteOutDto eliminarFicheroPendienteFirma(
			EliminarFicheroPendienteInDto eliminarFicheroPendienteInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Firmar fichero pendiente.
	 *
	 * @param firmarFicheroPendienteInDto the firmar fichero pendiente in dto
	 * @return the firmar fichero pendiente out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	FirmarFicheroPendienteOutDto firmarFicheroPendiente(
			FirmarFicheroPendienteInDto firmarFicheroPendienteInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Consultar firmantes fichero.
	 *
	 * @param consultarFirmatesFicheroInDto the consultar firmates fichero in dto
	 * @return the consultar firmates fichero out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	ConsultarFirmatesFicheroOutDto consultarFirmantesFichero(
			ConsultarFirmatesFicheroInDto consultarFirmatesFicheroInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Consultar nif autorizados firma.
	 *
	 * @param consultarNifAutorizadosFirmaInDto the consultar nif autorizados firma in dto
	 * @return the consultar nif autorizados firma out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	ConsultarNifAutorizadosFirmaOutDto consultarNifAutorizadosFirma(
			ConsultarNifAutorizadosFirmaInDto consultarNifAutorizadosFirmaInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Consultar ficheros pendientes por empresa o nif.
	 *
	 * @param ficherosPendientePorEmpresaONifInDto the ficheros pendiente por empresa o nif in dto
	 * @return the ficheros pendientes empresa o nif out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	FicherosPendientesEmpresaONifOutDto consultarFicherosPendientesPorEmpresaONif(
			FicherosPendientePorEmpresaONifInDto ficherosPendientePorEmpresaONifInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Registrar orden pendiente firma.
	 *
	 * @param registrarOrdenPendienteFirmaInDto the registrar orden pendiente firma in dto
	 * @return the confirmacion proceso out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	ConfirmacionProcesoOutDto registrarOrdenPendienteFirma(
			RegistrarOrdenPendienteFirmaInDto registrarOrdenPendienteFirmaInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Registrar fichero pendiente firma.
	 *
	 * @param ficheroPendienteFirmaInDto the fichero pendiente firma in dto
	 * @return the confirmacion proceso out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	ConfirmacionProcesoOutDto registrarFicheroPendienteFirma(
			FicheroPendienteFirmaInDto ficheroPendienteFirmaInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Consultar orden pendiente firma.
	 *
	 * @param ordenPendienteFirmaInDto the orden pendiente firma in dto
	 * @return the orden pendiente firma ref nif out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	OrdenPendienteFirmaRefNifOutDto consultarOrdenPendienteFirma(
			OrdenPendienteFirmaRefNifInDto ordenPendienteFirmaInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Consultar orden pendiente firma referencia externa.
	 *
	 * @param ordenPendienteFirmaReferenciaExternaInDto the orden pendiente firma referencia externa in dto
	 * @return the orden pendiente firma referencia externa out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	OrdenPendienteFirmaReferenciaExternaOutDto consultarOrdenPendienteFirmaReferenciaExterna(
			OrdenPendienteFirmaReferenciaExternaInDto ordenPendienteFirmaReferenciaExternaInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Eliminar orden pendiente firma.
	 *
	 * @param ordenPendienteInDto the orden pendiente in dto
	 * @return the confirmacion proceso out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	ConfirmacionProcesoOutDto eliminarOrdenPendienteFirma(
			OrdenPendienteFirmaInDto ordenPendienteInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Firmar orden pendiente firma.
	 *
	 * @param ordenPendienteInDto the orden pendiente in dto
	 * @return the confirmacion proceso out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	ConfirmacionProcesoOutDto firmarOrdenPendienteFirma(
			OrdenPendienteFirmaInDto ordenPendienteInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Consultar usuarios firmantes orden.
	 *
	 * @param usuariosFirmantesOrdenInDto the usuarios firmantes orden in dto
	 * @return the usuarios firmantes orden out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	UsuariosFirmantesOrdenOutDto consultarUsuariosFirmantesOrden(
			UsuariosFirmantesOrdenInDto usuariosFirmantesOrdenInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Anular firma fichero.
	 *
	 * @param firmaFicheroInDto the firma fichero in dto
	 * @return the confirmacion proceso out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	ConfirmacionProcesoOutDto anularFirmaFichero(
			FirmaFicheroInDto firmaFicheroInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Consultar detalle fichero.
	 *
	 * @param detalleFicheroInDto the detalle fichero in dto
	 * @return the detalle fichero out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	DetalleFicheroOutDto consultarDetalleFichero(
			DetalleFicheroInDto detalleFicheroInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Consultar situacion fichero.
	 *
	 * @param consultaSituacionFicheroInDto the consulta situacion fichero in dto
	 * @return the consulta situacion ficheros out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	ConsultaSituacionFicherosOutDto consultarSituacionFichero(
			ConsultaSituacionFicherosInDto consultaSituacionFicheroInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Consultar datos cliente.
	 *
	 * @param consultaDatosInDto the consulta datos in dto
	 * @return the datos cliente dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	DatosClienteDto consultarDatosCliente(
			ConsultaDatosClienteInDto consultaDatosInDto) throws ExcepcionEjecucionAplicacion ;

	/**
	 * Consulta aptitud mifid.
	 *
	 * @param consultaAptitudMifidInDto the consulta aptitud mifid in dto
	 * @return the consulta aptitud mifid out dto
	 * @throws ExcepcionEjecucionAplicacion the excepcion ejecucion aplicacion
	 */
	ConsultaAptitudMifidOutDto consultaAptitudMifid(
			ConsultaAptitudMifidInDto consultaAptitudMifidInDto) throws ExcepcionEjecucionAplicacion ;

}
